//===============================================================================
// Microsoft patterns & practices
// Web Client Software Factory
//-------------------------------------------------------------------------------
// Copyright (C) Microsoft Corporation.  All rights reserved.
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY
// OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
// LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
// FITNESS FOR A PARTICULAR PURPOSE.
//-------------------------------------------------------------------------------
// The example companies, organizations, products, domain names,
// e-mail addresses, logos, people, places, and events depicted
// herein are fictitious.  No association with any real company,
// organization, product, domain name, email address, logo, person,
// places, or events is intended or should be inferred.
//===============================================================================
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace WCSFContrib.PageFlow.Tests
{
	/// <summary>
	/// Summary description for NavigationExceptionFixture
	/// </summary>
	[TestClass]
	public class NavigationExceptionFixture
	{
		[TestMethod]
		[ExpectedException(typeof (NavigationException))]
		public void ShouldBeAnException()
		{
			throw new NavigationException();
		}

		[TestMethod]
		public void CanContainAMessage()
		{
			string message = "NavigatonExceptionMessage";
			NavigationException ex = new NavigationException(message);
			try
			{
				throw ex;
			}
			catch (NavigationException exception)
			{
				Assert.IsNotNull(exception.Message);
				Assert.AreEqual(message, exception.Message);
			}
		}

		[TestMethod]
		public void CanWrapException()
		{
			try
			{
				throw new Exception();
			}
			catch (Exception ex)
			{
				NavigationException navEx = new NavigationException("navigationException", ex);

				Assert.IsNotNull(navEx);
				Assert.AreEqual(navEx.InnerException, ex);
			}
		}
	}
}
